iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Python

python介紹系列 第 19

Python進階語法(二)

  • 分享至 

  • xImage
  •  

str 和 repr
這兩個是Python類別的特殊方法,讓你可以定義物件在打印時的表現。str 是給人看的,repr 是給開發者看的。
class Car:
def init(self, model, year):
self.model = model
self.year = year

def __str__(self):
    return f"{self.year} {self.model}"

def __repr__(self):
    return f"Car(model={self.model}, year={self.year})"

car = Car("Toyota", 2020)
print(car) # 2020 Toyota
str 讓物件打印出更有意義的內容,而 repr 則通常用於除錯。

屬性裝飾器 (Property Decorator)
@property裝飾器讓你可以將方法變成屬性來訪問,這樣你可以保留方法的靈活性,同時讓使用者的代碼更加簡潔。
class Circle:
def init(self, radius):
self._radius = radius

@property
def area(self):
    return 3.14159 * self._radius ** 2

circle = Circle(5)
print(circle.area) # 自動計算並返回面積
這讓你可以像訪問屬性一樣使用方法,卻不用寫 ()。

裝飾器的參數 (Decorators with Arguments)
有時你可能需要傳遞參數給裝飾器,這可以讓你的裝飾器更靈活。
def repeat(n):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
func(*args, **kwargs)
return wrapper
return decorator

@repeat(3)
def greet(name):
print(f"Hello, {name}!")

greet("Alice") # Hello, Alice! 會被打印三次
這裡我們讓裝飾器接受參數,並用它來控制函數的執行次數。


上一篇
Python進階語法(一)
下一篇
Python進階語法(三)
系列文
python介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言